#ifndef DEBUG_H
#define DEBUG_H
#include <iostream>
using namespace std;
class Debugdelete {
 public:
  Debugdelete(ostream &s = cerr) : os(s) {}  //构造函数
  template <typename T>
  void operator()(T *p) const  // const表示该函数不会修改类的成员数据
  {
    os << "deleting..." << endl;  //额外信息，我们的删除器可以做用于任何版本类型
    delete p;  //接受一个指针作为参数，并且删除该指针
  }

 private:
  ostream &os;  //私有成员为一个输出流
};
#endif  // DEBUG_H